#include "httplib.h"

using namespace httplib;

void HelloBit(const Request& req, Response &rsp)
{
    rsp.body = "Hello Bit!";
    rsp.status = 200; // 可以忽略，默认httplib会加上200
}

void Numbers(const Request& req, Response &rsp)
{
    // matches存放的是正则表达式匹配的规则数据
    auto numbers = req.matches[1];
    rsp.set_content(numbers, "text/plain"); // 向rsp.body；里面添加数据，并且设置Content_Type类型
    rsp.status = 200;

}

void Multipart(const Request& req, Response &rsp)
{
    MultipartFormData file = req.get_file_value("filel");
    std::cout << file.filename << std::endl; // 区域文件名称
    std::cout << file.content << std::endl; // 区域文件内容
    rsp.status = 200;

}

int main()
{
    Server server;

    // 设置一个静态资源根目录 -- 为当前目录下的www目录
    server.set_mount_point("/", "./www");

    // 添加请求 -- 处理函数映射信息
    server.Get("./hi", HelloBit);
    // 正则表达式中：\d表示数字，+表示匹配前面的字符一次或多次，()表示单独捕捉数据 /numbers/123
    server.Get("/numbers/(\\d+)", Numbers);
    server.Post("/multipart", Multipart);
    server.listen("0.0.0.0", 9090);

    return 0;
}